package com.qyer.lxp.dao.product;

import com.qyer.lxp.model.product.normal.*;

import java.util.List;
import java.util.Map;

/**
 * Created by wangzhen on 16/5/19.
 */
public interface ProductInfoMapper {
    /**
     * 插入产品信息
     * @param model
     * @return
     */
    public int insertProductInfo(ProductInfo model);

    /**
     * 获得产品信息
     * @return
     */
    public ProductInfo getProductInfo(String productCode);

    /**
     * 插入产品预定问题信息
     * @param model
     * @return
     */
    public int insertProductBookQuestion(ProductBookQuestion model);

    /**
     * 插入产品描述信息
     * @param model
     * @return
     */
    public int insertProductDesc(ProductDesc model);

    /**
     * 获得产品描述信息
     * @return
     */
    public List<ProductDesc> getProductDesc(String productCode);

    /**
     * 插入产品扩展字段信息
     * @param model
     * @return
     */
    public int insertProductExtendPropertie(ProductExtendPropertie model);

    /**
     * 插入产品规格信息
     * @param model
     * @return
     */
    public int insertProductInclude(ProductInclude model);

    /**
     * 获得产品规格
     * @return
     */
    public List<ProductInclude> getProductInclude(String specficationId);

    /**
     * 插入产品行程描述
     * @param model
     * @return
     */
    public int insertProductItinerary(ProductItinerary model);

    /**
     * 获得产品行程描述
     * @return
     */
    public List<ProductItinerary> getProductItinerary(String productCode);

    /**
     * 插入产品行程描述酒店信息
     * @param model
     * @return
     */
    public int insertProductItineraryHotel(ProductItineraryHotel model);

    /**
     * 获得产品行程描述酒店信息
     * @return
     */
    public ProductItineraryHotel getProductItineraryHotel(int itineraryId);

    /**
     * 插入产品行程描述交通信息
     * @param model
     * @return
     */
    public int insertProductItineraryTraffic(ProductItineraryTraffic model);

    /**
     * 获得产品行程描述交通信息
     * @return
     */
    public ProductItineraryTraffic getProductItineraryTraffic(int itineraryId);

    /**
     * 插入产品图片信息
     * @param model
     * @return
     */
    public int insertProductPhoto(ProductPhoto model);

    /**
     * 获得产品行程描述交通信息
     * @return
     */
    public List<ProductPhoto> getProductPhoto(String productCode);

    /**
     * 插入产品规格信息
     * @param model
     * @return
     */
    public int insertProductSpecfication(ProductSpecfication model);

    /**
     * 获得产品产品规格信息
     * @return
     */
    public List<ProductSpecfication> getProductSpecfication(String productCode);

    /**
     * 插入销售项目详细信息
     * @param model
     * @return
     */
    public int insertSaleItemDetail(SaleItemDetail model);

    /**
     * 获得产品销售项目详细信息
     * @return
     */
    public List<SaleItemDetail> getSaleItemDetail(String productCode);

    /**
     * 插入销售项目附加信息
     * @param model
     * @return
     */
    public int insertSaleItemAdditionalOption(SaleItemAdditionalOption model);

    /**
     * 插入销售项目自取地址信息
     * @param model
     * @return
     */
    public int insertSaleItemAddressDetail(SaleItemAddressDetail model);

    /**
     * 插入销售项目凭证信息
     * @param model
     * @return
     */
    public int insertSaleItemVoucherInfo(SaleItemVoucherInfo model);

    /**
     * 获得产品销售项目详细信息
     * @return
     */
    public SaleItemVoucherInfo getSaleItemVoucherInfo(String saleCode);

    /**
     * 获得产品行程酒店图片
     * @return
     */
    public List<ProductPhoto> getPhotoByItinerariesId(String itinerariesId);

    /**
     * 获取所有问题
     * @param productCode
     * @return
     */
    public List<ProductBookQuestion> getQuestion(String productCode);

    /**
     * 根据问题获取答案
     * @param productCode
     * @param questionId
     * @return
     */
    public List<ProductBookQuestion> getQuestionAnswer(String productCode,String questionId);


    /**
     * 删除产品信息
     * @param productCode
     */
    public void deleteProductInfo(String productCode);

    /**
     * 删除预定问题
     * @param productCode
     */
    public void deleteProductBookQuestion(String productCode);

    /**
     * 删除产品描述
     * @param productCode
     */
    public void deleteProductDescn(String productCode);

    /**
     * 删除产品扩展信息
     * @param productCode
     */
    public void deleteProductExtendPropertie(String productCode);

    /**
     * 删除产品附加信息
     * @param productCode
     */
    public void deleteProductInclude(String productCode);

    /**
     * 删除产品行程信息
     * @param productCode
     */
    public void deleteProductItinerary(String productCode);

    /**
     * 删除产品行程酒店
     * @param productCode
     */
    public void deleteProductItineraryHotel(String productCode);

    /**
     * 删除产品行程交通信息
     * @param productCode
     */
    public void deleteProductItineraryTraffic(String productCode);

    /**
     * 删除产品图片信息
     * @param productCode
     */
    public void deleteProductPhoto(String productCode);

    /**
     * 删除产品规格
     * @param productCode
     */
    public void deleteProductSpecfication(String productCode);

    /**
     * 删除产品销售项目
     * @param productCode
     */
    public void deleteSaleItemDetail(String productCode);

    /**
     * 删除产品销售附加信息
     * @param productCode
     */
    public void deleteSaleItemAdditionalOption(String productCode);

    /**
     * 删除产品销售自取地址细腻
     * @param productCode
     */
    public void deleteSaleItemAddressDetail(String productCode);

    /**
     * 删除产品凭证信息
     * @param productCode
     */
    public void deleteSaleItemVoucherInfo(String productCode);

    /**
     * 根据销售code获取销售项目信息
     * @param saleCode
     * @return
     */
    public SaleItemDetail getSaleItemDetailBySaleCode(String saleCode);

    /**
     * 获取套餐名称
     * @return 返回套餐名称
     */
    public List<SaleItemDetail> getSaleNameMap();



}
